色彩的處理是在車道辨識重要的的一環,在此要介紹相關色彩的技術。
色彩空間是一種特定的色彩組織; 顏色空間提供了一種對顏色進行分類並在數字圖像中表示顏色的方法。
RGB是紅綠藍色空間。 可將其視為3D空間,如下圖RGB空間為立方體,其中任何顏色都可以由R,G和B值的3D坐標表示。 例如,white具有坐標(255,255,255),其具有紅色,綠色和藍色的最大值。
注意:如果您使用matplotlib.image.imread()讀入圖像,您將獲得RGB圖像,但如果您使用OpenCV cv2.imread()讀取它,這將為您提供BGR圖像。
除了由紅色,綠色和藍色值組成之外,還有許多其他方式來表示圖像中的顏色。
還有HSV顏色空間(色調,飽和度和值)和HLS空間(色調,亮度和飽和度)。這些是圖像分析中最常用的色彩空間。
為了對這些顏色空間有所了解,通常可以將Hue視為表示顏色的值,與亮度的任何變化無關。因此,如果你想像一個基本的紅色油漆顏色,然後添加一些白色或一些黑色使這種顏色更亮或更暗 - 底層顏色保持不變,所有這些顏色的色調將是相同的。
此外,亮度和值表示測量顏色的相對亮度或暗度的不同方式。例如,深紅色具有相似的色調,但亮度值比淺紅色低得多。飽和度也參與其中;飽和度是對色彩的衡量。因此,隨著顏色越來越淡,越接近白色,它們的飽和度越低,而顏色越強烈,如明亮的原色(想像為鮮紅色,藍色或黃色),則具有高飽和度值。通過查看下圖所示的3D色彩空間,您可以更好地了解這些值。
在代碼示例中,我使用HLS空間來幫助檢測不同顏色和不同光照條件下的車道線。
OpenCV提供了一個函數hls = cv2.cvtColor(im,cv2.COLOR_RGB2HLS),此函數將圖像從一個顏色空間轉換為另一個顏色空間。